移动端H5性能测试平台(上)
作者|赵新源
移动端H5性能测试通常会用到Charles 、fiddler等,这些工具确实能满足一定的需求,但执行过程复杂,不能很好的管理性能测试结果,不能分析结果,所以需要一个H5性能自动化测试平台。
先抛出我们的方案:
管理平台 + agent + mitmproxy + harviewer。
管理平台负责管理测试任务、测试机器、下发命令、测试结果查询;
Agent负责执行平台下发的命令来开启代理,同时通过自动化脚本来使手机进行指定url访问;
Mitmproxy通过代理的方式获取http和https包;
MitmProxy的优点:首先他是python语言,跨平台的,同时支持命令行执行,最最重要的是它可以通过script脚本来处理抓包的输出流,可以通过脚本直接生成har文件,相比我们常用的tcpdump还是很强大的;
Harviewer是一个开源的工具,可以直接将har文件生成请求瀑布流。
本章先讲解一下mitmproxy如何抓取http和https请求。
一.Mitmproxy使用
为什么我们要使用Mitmproxy?
开始我们想用tcpdump,但是tcpdump抓取不了https
生成的pacp文件里无法解析https的详细信息
现在很多公司的资源都是https的,这个在性能测试里占了很大一部分的指标,总不能抛弃这一部分
所以决定用代理的方式来抓包,经过筛选,确定了Mtimroxy来进行抓包。
Mitmproxy抓包有三种展示方式:mitmproxy、mitmdump以及mitmweb。
1、mitmproxy可以实时的查看、编辑请求,如果需要走自动化,这种方式不太方便
2、mitmdump可以通过命令行的方式执行,打印出简单的信息,配合上python script就很方便
正常的命令-w只能保存流文件,但是这个proxy自带了一些脚本,比如里面有一个har_dump.py脚本
在目录的examples/complex里面,可以直接转为har文件,无需再处理
接着又会发现这个har文件通过harviewer打不开
通过检查,发现是自带的脚本转换成har文件的时候少处理了两个地方,导致文件格式没问题,但是无法通过harviewer打开
./venv/bin/mitmdump -s examples/complex/har_dump1.py --set hardump=dump.har -p 4002
这个里面-s 命令就是执行python脚本,通过脚本来转换流数据。这个脚本就是根据源脚本改的。后面就是指定生成的文件为dump.har,监听的端口是4002。
至于改的脚本处理的时候,和har有关系,放在后面介绍,敬请关注后续文章。
以前用tcpdump进行尝试的时候是打算用tcpdump+pcap2har+harviewer,这下可以直接生成har文件,还是很爽的~~
3、mitmweb就不多说了,需要自带浏览器才能用
二 、手机配置代理
1、设置手机服务器以及端口,端口就上mitmproxy监听的端口
2、访问mitm.it,下载证书
如果安装失败就需要手动上传证书,证书在安装的服务器下面~/.mitmproxy/。 记得一定要信任证书,否则不生效。
好了,现在就可以手动通过mitmproxy抓取https包了,剩下的内容随后会持续更新,敬请关注后续相关文章,移动端H5性能自动化测试平台(下):重点讲解mitmdump如何生成har?
往期精彩回顾